package model

import (
	"learn-goframe/internal/repository/xtcloud-file/entity"
)

type SolutionCreateBaseInput struct {
	SolutionName      string `json:"solutionName"     description:"方案名称"`
	SolutionImgUrl    string `json:"solutionImgUrl"   description:"方案图片"`
	SolutionSummarize string `json:"solutionSummarize" description:"方案概述"`
	SolutionFileUrl   string `json:"solutionFileUrl"  description:"方案文件"`
	CategoryId        string `json:"categoryId"       description:"分类id"`
	CategoryParentId  string `json:"categoryParentId" description:"分类父id"`
}

type SolutionAdminUpdateInput struct {
	SolutionCreateBaseInput

	Id               string `json:"id"               description:"方案id"`
	ContactMobile    string `json:"contactMobile"    description:"手机号"`
	OrgName          string `json:"orgName"          description:"企业名称"`
	OrgLicenseImgUrl string `json:"orgLicenseImgUrl" description:"企业营业执照"`
}

type SolutionUserUpdateInput struct {
	SolutionCreateBaseInput

	Id     string `json:"id"               description:"方案id"`
	Status int    `json:"status"            description:"1=审核中，4=未提交"`
}

type SolutionUserCreateInput struct {
	SolutionCreateBaseInput

	Id string `json:"id"               description:"方案id"`

	CreateUserId   string `json:"createUserId"     description:"提交用户"`
	CreateUserName string `json:"createUserName"     description:"提交人"`
	CreateUserType int    `json:"createUserType"     description:"提交人类型"`

	OrgName          string `json:"orgName"          description:"企业名称"`
	OrgLicenseImgUrl string `json:"orgLicenseImgUrl" description:"企业营业执照"`

	ContactMobile string `json:"contactMobile"    description:"手机号"`

	RelName string `json:"relName" description:"个人开发者姓名"`

	Status int `json:"status"            description:"1=审核中，4=未提交"`
}

type SolutionCreateOutput struct {
	Id string `json:"id" description:"方案id"`
}

type SolutionListOutput struct {
	List  []*entity.ProjectSolution `json:"list" description:"列表"`
	Page  int                       `json:"page" description:"分页码"`
	Size  int                       `json:"size" description:"分页数量"`
	Total int                       `json:"total" description:"数据总数"`
}

type SolutionListInput struct {
	Page int `json:"page" in:"query" d:"1"  v:"min:0#分页号码错误"     description:"分页号码，默认1"`
	Size int `json:"size" in:"query" d:"10" v:"max:100#分页数量最大100条" description:"分页数量，最大100"`

	Status        int    `json:"status" description:"状态"`
	StatusExclude int    `json:"statusExclude" description:"不包含的状态"`
	SolutionName  string `json:"solutionName" description:"方案名称"`
	CreateUserId  string `json:"createUserId" description:"提交用户id"`
}

type SolutionSingleIdInput struct {
	Id string `json:"id"               description:"方案id"`
}

type SolutionCheckInput struct {
	Id          string `json:"id"               description:"方案id"`
	Status      int    `json:"status"            description:"2=已通过，3=已驳回"`
	CheckRemark string `json:"checkRemark"           description:"备注，驳回原因"`
	CheckUserId string `json:"checkUserId"           description:"审核人id"`
}

type CategoryListInput struct {
	ListMode         int `json:"listMode" description:"列表模式"`
	SolutionShowMode int `json:"solutionShowMode" description:"方案展示模式"`
}

type DataCloudRequestInput struct {
	Token string `json:"token" description:"token"`
}

type CertContent struct {
	Name           string `json:"name" description:"姓名"`
	UnitName       string `json:"unitName" description:"企业名称"`
	CertType       int    `json:"certType" description:"认证类型，1=个人认证，2=企业认证"`
	Mobile         string `json:"mobile" description:"手机号"`
	IdCardImageUrl string `json:"idCardImageUrl" description:"企业营业执照"`
}

type DataCloudCertDetailReqOutput struct {
	PersonalCertStatus int         `json:"personalCertStatus" description:"个人认证状态"`
	PersonalCert       CertContent `json:"personalCert" description:"个人认证信息"`

	EnterpriseCertStatus int         `json:"enterpriseCertStatus" description:"企业认证状态"`
	EnterpriseCert       CertContent `json:"enterpriseCert" description:"企业认证信息"`
}

type DeveloperInfoOutput struct {
	CertType int `json:"certType" description:"认证类型，1=个人认证，2=企业认证"`

	CertInfo CertContent `json:"certInfo" description:"认证信息"`
}
